1. Field of the Invention
The present invention relates to telecommunications systems and more particularly to a method and apparatus for improving the speed and quality of data communications through a packet switched network. The invention is particularly useful for enhancing the communication of real-time media signals, such as audio and video, through a congested and lossy network such as the Internet.
2. Description of the Related Art
The Internet is a world-wide network of computers and computer networks of a configuration well known to those in the art. The Internet operates according to a set of standard protocols known as Transmission Control Protocol/Internet Protocol (TCP/IP). Each protocol in the TCP/IP suite is designed to establish communication between common layers on two machines, or hosts, in the network. The lowest layer in the Internet is the "physical" layer, which is concerned with ensuring that actual bits and bytes of information pass along physical links between nodes of the network. The next layer is the "network" or "IP" layer, which is concerned with permitting hosts to inject packets of data into the network to be routed independently to a specified destination. The next layer in turn is the "transport" layer, which is concerned with allowing peer entities on source and destination hosts to carry on a conversation.
The transport layer of TCP/IP includes two end-to-end protocols, TCP (Transmission Control Protocol) and UDP (User Datagram Protocol). TCP is a reliable connection-oriented protocol, which includes intelligence necessary to confirm successful transmission between the sending and receiving ends in the network. UDP, in contrast, is an unreliable connectionless protocol, which facilitates sending and receiving of packets but does not include any intelligence to establish that a packet successfully reached its destination. In general, UDP is used by applications that do not want TCP's sequencing or flow control but wish to provide their own.
According to the TCP/IP model, the TCP transport layer takes a data stream to be transmitted and breaks it up into independent connectionless segments or "datagrams." TCP adds to each of these packages a 20 byte header, which includes overhead information such as a source port number, a destination port number and a sequence number designed to allow the receiving end to properly reassemble the datagrams into the original message. The transport layer then "passes" each of these packages to the IP layer.
The IP layer in turn adds another header to each package, providing additional overhead information, such as a source IP address and a destination IP address. The IP layer then transmits the resulting packages through the Internet, possibly fragmenting each package into pieces or as it goes. As the pieces of the package finally reach the destination machine, they are reassembled by the IP layer and passed to the transport layer. The transport layer then inserts the original datagrams in proper sequence in an effort to reconstruct the original data stream for use by the receiving process and ultimately by an end user.
As a computer network, the Internet thus serves to provide communication between two nodes, such as a local subscriber computer/modem (which might be referred to as the "source" equipment) and a remote computer/modem (which might be referred to as the "destination" equipment), for example. In practice, the source equipment packetizes a stream of useful data and adds to each packet the header information required by TCP/IP for transmission over the Internet. The source then forwards a sequence of these packets via a communications link to a network access server (often in the form of a "hub" or "router") at the edge of the Internet.
The communications link from the source equipment to the network access server may take any of a variety of forms. As an example, if the source equipment is a connected to the public switched telephone network (PSTN), the communications link may consist of an unshielded twisted pair (UTP) of copper wires extending from the subscriber's modem to a telephone company central office, and then a T1 line extending from the central office to the network access server. As another example, if the source equipment is connected to a local area network (LAN), the communications link may consist of the LAN and then a transmission line extending from the LAN to the network access server. In that case, the source equipment may even have its own Internet address (IP address). Nevertheless, the source equipment should still be viewed as being connected "to" the Internet via a communications link, as it is connected via that link to a network access server at the edge of the Internet. In any event, this communications link is generally reliable, in the sense that little if any perceptible loss will result to data being carried by the link.
At the edge of the Internet, the network access server receives the incoming stream of data packets provided by the source and routes the packets onto the Internet for transmission to a remote location, or other edge, of the Internet. This network access server is commonly owned by an Internet Service Provider (ISP) organization. Due to the growing demand for Internet access, a network access server usually contains a plurality of modems or other circuitry arranged to simultaneously receive and process multiple incoming calls. In addition, the network access server often includes or is connected to a gateway, sometimes in the form of a discrete processor, for forwarding the packets onto the Internet. Of course, the network access server may take other forms as well, generally serving the function of passing data between the Internet and some external communications link (even if that external communications link is an offshoot of the Internet).
Ideally, the packets transmitted into the Internet by the network access server should arrive successfully at a remote edge of the Internet and pass to the specified destination equipment. Generally, similar to the source equipment as described above, the destination equipment is connected via a communications link to a network access server at the remote edge of the Internet. This communication link may be of the same or a different type than that used to connect the source equipment. In any event, the destination equipment should ideally receive the transmitted IP packets, extract the payload from the packets and reconstruct an ordered data stream for use by a remote subscriber.
Unfortunately, deficiencies in the existing communication infrastructure have precluded the successful widespread transmission of real time media signals, such as digitized voice, audio and video, from end-to-end over the Internet. The principle reasons for this lack of success have been a limited bit rate in the communications link and, in turn, signal distortion that arises from a high rate of packet loss and delay in the Internet.
First, the conventional telephone circuit that is often used to carry packets between the source equipment and the network access server is limited in bit rate. In particular, according to Shannon's Law, which is well known in the art, the bit rate or capacity C in a transmission line having a bandwidth B and a signal-to-noise ratio SNR is defined as the product of B and log.sub.2 (1+SNR). While the quality of transmission along a conventional telephone line may vary, the line typically has a bandwidth of about 3 kHz and a signal-to-noise ratio of about 30 dB. With these values, the line would be limited to a bit rate of about 30 kbps.
In an effort to work with this bit rate limitation, the telecommunications industry has recognized that Internet users (and other modem users) are more likely to download complex media signals (such as audio and video clips) from the Internet than to upload such signals to the Internet. Consequently, many modems today apportion the available telephone line capacity between upstream communication (away from the subscriber modem) and downstream communication (toward the subscriber modem). These modems include, for example, the U.S. Robotics Sportster 56K Faxmodem, and the U.S. Robotics Sportster 56K Winmodem, both manufactured by 3Com Corporation, of Santa Clara, Calif.
Commonly, for instance, by employing advanced digital coding techniques, modems may allocate a bit rate of 56 kbps to downstream transmission and a bit rate of only 33.6 kbps to upstream transmission. Alternatively, other protocols such as ADSL (asymmetric digital subscriber line) provide for different bit rate allocations between the upstream and downstream channels in the telephone link.
Due to the limited bit rate available for upstream transmission on the conventional telephone link, real-time media services such as digitized voice and video need to be highly compressed or "source coded" in order to be transmitted to the Internet. Typically, the source equipment performs this compression according to one of many well known coding schemes, such as G.723.1, H.261 and H.263 (as recommended by the International Telecommunications Union), for example. As those skilled in the art appreciate, however, the more a media stream is compressed, the more sensitive it becomes to distortion from packet loss, because each packet of the stream represents more information about the underlying signal.
In turn, as known in the art, the Internet itself (generally extending from network access server to network access server) suffers from a high rate of packet loss and resulting transmission delays. In particular, depending on conditions such as how congested the Internet is at any given time, loss of entire packets has been found to occur on the Internet at a rate of up to 25%, or up to one in every four packets. Typically, this packet loss occurs one packet at a time, which should not perceptibly distort a real-time audio signal, but may perceptibly distort a real-time video signal, and would certainly distort a pure data signal such as an e-mail message. Often, however, burst errors occur on the Internet and result in the loss of multiple sequential packets in a row. Unlike the sporadic loss of a single packet, if left uncorrected, these burst errors can and will substantially and perceptibly distort almost any transmitted signal.
The connection-oriented TCP protocol provides a mechanism for responding to packet loss in the Internet. According to TCP, when a segment arrives at the destination, the receiving TCP entity should send back to the sending entity a segment bearing an acknowledgement number equal to the next sequence number that it expects to receive. If the sending entity does not receive an acknowledgement within a specified time period, it will re-transmit the package of data.
Generally speaking, this acknowledgment and re-transmission system works well to correct packet loss in the Internet. However, the system can unfortunately delay the complete transmission of a data stream. For the transmission of packets representing pure data signals such as e-mail messages, transmission delay is not ideal, although it is of secondary concern compared to an unrecoverable loss of information. Real-time media signals (especially compressed signals), however, are by definition highly sensitive to delay and will appear jumpy, interrupted or otherwise distorted if parts of the signal do not flow continuously to the receiving end. Therefore, although the loss of packets in a real time media transmission over the Internet has been correctable, the resulting signals have often nevertheless been of unacceptable quality.
As the foregoing illustrates, the existing structure and methods for communication of data and real time media signals over the Internet have proved to be deficient. In view of the existing deficiencies, a need therefore exists for an improved mechanism to provide better quality and quicker end-to-end communications over the Internet or other lossy network.